package com.ethan.blog.pojo.dto.user;

import com.ethan.blog.common.constant.StatusCodeConstant;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Pattern;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * @author: Ethan
 * @Time: 2024/5/25 14:30
 * @description: 用于在应用程序层之间传输用户数据的对象
 */
@Schema(description = "用户数据传输对象类")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserDTO implements Serializable {
    /**
     * 昵称
     */
    @Schema(description = "昵称不可为空")
    private String nickName;
    /**
     * 账号
     */
    @Schema(description = "账号唯一，不可为空，有随机默认值")
    @Pattern(regexp = StatusCodeConstant.LOGIN_ACCOUNT_PATTERN, message = "账号格式不正确")
    private String account;
    /**
     * 邮箱
     */
    @Schema(description = "邮箱唯一，可以为空")
    @Pattern(regexp = StatusCodeConstant.LOGIN_EMAIL_PATTERN, message = "邮箱格式不正确")
    private String email;
    /**
     * 手机号
     */
    @Schema(description = "手机号唯一，可以为空")
    @Pattern(regexp = StatusCodeConstant.LOGIN_PHONE_PATTERN, message = "手机号格式不正确")
    private String phoneNumber;
    /**
     * 密码
     * 密码不得传输到前端
     */
//    @Schema(name = "密码", description = "密码不可为空")
//    private String password;
    /**
     * 出生日期
     */
    @Schema(description = "出生日期可以为空")
    private Date datebirth;
}
